package main

import "fmt"

// 多继承
type A interface {
	test1()
}

type B interface {
	test2()
}

type C interface {
	A
	B
	test3()
}

type Dog03 struct {
}

func (dog Dog03) test1() {
	fmt.Println("dog test1")
}

func (dog Dog03) test2() {
	fmt.Println("dog test2")
}

func (dog Dog03) test3() {
	fmt.Println("dog test3")
}

func main() {
	var dog = Dog03{}
	dog.test1()
	dog.test2()
	dog.test3()

	var ia A = dog
	ia.test1()

	var ib B = dog
	ib.test2()

	var ic C = dog
	ic.test1()
	ic.test2()
	ic.test3()
}
